package com.ylg.mybatis.core;

import javax.sql.DataSource;
import java.sql.Connection;

/**
 * @since 1.0
 * @author 杨凌广
 * @version 1.0
 *
 * 事务管理器接口 面向接口编程 定义规范
 * 通过读取配置文件可以随意切换
 */
public interface Transaction {

    /**
     * 关闭连接
     */
    void close();

    /**
     * 提交事务
     */
    void commit();

    /**
     * 回滚事务
     */
    void rollback();

    /**
     * 获取连接
     */
    Connection getConnection();

    /**
     * 打开连接 为了防止在执行sql代码和事务管理器用的不是同一个连接，所以不能获取多次。打开一次即可。
     */
    void openConnection();

    /**
     * 获取数据源对象
     * @return
     */
    DataSource getDataSource();
}
